The present invention relates to the delivery of video content, such as advertisements or movies, to users using HTTP streaming with multiple high-value features, including efficient load-balancing, user-specific watermarking, and Uniform Resource Locator (URL) obfuscation.
The explosion of streaming video on Internet Protocol (IP) networks has led to the development of so-called Adaptive Hypertext Transfer Protocol (HTTP) Streaming protocols for video (also referred to as “adaptive bit rate” formats). While there are multiple instantiations of these protocols, they share the following features: (a) a video stream is broken into short, several-second-long files which are downloaded by a client and played sequentially to form a seamless video view; (b) these files, or “fragments” of video content, may be encoded at different bit rates and resolutions (referred to as “profiles”) to provide several versions of each fragment; (c) a manifest file is used to identify the fragments and let the client know the various available profiles, so that it can select which fragments to download based on local conditions, such as the available download bandwidth; and (d) in a typical scenario, the client may start downloading fragments at low resolution and low bandwidth and then switch to downloading fragments from higher bandwidth profiles, giving the user a fast tune-in experience and subsequent better video quality experience.
In a video-on-demand (VOD) scenario, the fragments from different profiles may be stored on disk or other mass storage devices for delivery via HTTP, but this forces video programs (also referred to herein as “assets”) to be composed of many separate files, which complicates content management. Thus, the fragments can be stored in a single aggregated file from which they are extracted “just-in-time” (JIT) when a client makes a request for a specific fragment.
The leading HTTP streaming formats in use currently are Apple® HTTP Live Streaming (HLS), Microsoft® Smooth Streaming (MSS), Adobe® HTTP Dynamic Streaming (HDS), and MPEG Dynamic Adaptive Streaming over HTTP (DASH). A just-in-time Packager (JITP) is a process that enables extraction of fragments from an aggregated collection (or a mezzanine file) and distribution of the extracted fragments over HTTP in these or other HTTP streaming formats.
A normal JITP can serve files from a single asset, but it cannot serve a collection of assets contiguously in response to one VOD request. It would be advantageous to provide a system in which a collection of assets can be served contiguously in response to one VOD request, whether coming from a JITP or from other origins. It would be further advantageous to provide methods for contiguously serving a collection of assets to a client in response to a single VOD request.
The methods and apparatus of the present invention provide the foregoing and other advantages.